import { RouteRecordRaw } from "vue-router";
import { HOME_URL, LOGIN_URL } from "@/config";

/**
 * staticRouter (静态路由)
 */
export const staticRouter: RouteRecordRaw[] = [
  {
    path: "/",
    redirect: HOME_URL
  },
  {
    path: LOGIN_URL,
    name: "login",
    component: () => import("@/views/login/index.vue"),
    meta: {
      title: "登录"
    }
  },
  {
    path: "/layout",
    name: "layout",
    component: () => import("@/layouts/index.vue"),
    // component: () => import("@/layouts/indexAsync.vue"),
    redirect: HOME_URL,
    children: []
  },
  {
    path: "/user",
    component: () => import("@/layouts/index.vue"),
    children: [
      {
        path: "profile",
        component: () => import("@/views/system/user/profile/index.vue"),
        name: "Profile",
        meta: { title: "个人中心", icon: "user", isHide: true }
      }
    ]
  },
  {
    path: "/system/user/auth",
    component: () => import("@/layouts/index.vue"),
    children: [
      {
        path: "role/:userId(\\d+)",
        component: () => import("@/views/system/user/authRole.vue"),
        name: "AuthRole",
        meta: { title: "分配角色", activeMenu: "/system/user", isHide: true, icon: "role" }
      }
    ]
  },
  {
    path: "/system/role/auth",
    component: () => import("@/layouts/index.vue"),
    children: [
      {
        path: "user/:roleId(\\d+)",
        component: () => import("@/views/system/role/authUser.vue"),
        name: "RoleAuth",
        meta: { title: "分配人员", activeMenu: "/system/role", isHide: true, icon: "Link" }
      }
    ]
  },
  {
    path: "/system/dict/data",
    component: () => import("@/layouts/index.vue"),
    children: [
      {
        path: "index/:dictId(\\d+)",
        component: () => import("@/views/system/dict/data.vue"),
        name: "DictData",
        meta: { title: "数据字典", activeMenu: "/system/dict", isHide: true, icon: "Link" }
      }
    ]
  },
  {
    path: "/system/oss/config",
    component: () => import("@/layouts/index.vue"),
    children: [
      {
        path: "index",
        component: () => import("@/views/system/oss/config.vue"),
        name: "OssConfig",
        meta: { title: "存储配置", activeMenu: "/system/oss", isHide: true, icon: "Link" }
      }
    ]
  },
  {
    path: "/tool/gen/edit",
    component: () => import("@/layouts/index.vue"),
    children: [
      {
        path: "index/:tableId",
        component: () => import("@/views/tool/gen/editTable.vue"),
        name: "TableEdit",
        meta: { title: "更新字段", activeMenu: "/tool/gen/edit", isHide: true, icon: "Link" }
      }
    ]
  }
];

/**
 * errorRouter (错误页面路由)
 */
export const errorRouter = [
  {
    path: "/403",
    name: "403",
    component: () => import("@/components/ErrorMessage/403.vue"),
    meta: {
      title: "403页面"
    }
  },
  {
    path: "/404",
    name: "404",
    component: () => import("@/components/ErrorMessage/404.vue"),
    meta: {
      title: "404页面"
    }
  },
  {
    path: "/500",
    name: "500",
    component: () => import("@/components/ErrorMessage/500.vue"),
    meta: {
      title: "500页面"
    }
  },
  // Resolve refresh page, route warnings
  {
    path: "/:pathMatch(.*)*",
    component: () => import("@/components/ErrorMessage/404.vue")
  }
];
